package com.nuorui.module.system.domain.entity;


import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

/**
 * 菜单表
 *
 * @author
 * @date 2021-12-14 09:32:44
 */
@Data
@TableName(value = "t_menu")
public class MenuEntity {

    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "菜单ID")
    private Long menuId;

    @ApiModelProperty(value = "菜单名称")
    private String menuName;

    @ApiModelProperty(value = "菜单类型")
    private Integer menuType;

    @ApiModelProperty(value = "父菜单ID")
    private Long parentId;

    @ApiModelProperty(value = "显示顺序")
    private Integer sort;

    @ApiModelProperty(value = "路由地址")
    private String path;

    @ApiModelProperty(value = "组件路径")
    private String component;

    @ApiModelProperty(value = "后端权限字符串")
    private String apiPerms;

    @ApiModelProperty(value = "权限类型")
    private Integer permsType;

    @ApiModelProperty(value = "前端权限字符串")
    private String webPerms;

    @ApiModelProperty(value = "菜单图标")
    private String icon;

    @ApiModelProperty(value = "功能点关联菜单ID")
    private Long contextMenuId;

    @ApiModelProperty(value = "是否外链,0:否,1:是")
    private Boolean isFrame;

    @ApiModelProperty(value = "外链地址")
    private String frameUrl;

    @ApiModelProperty(value = "是否缓存,0:否,1:是")
    private Boolean isCache;

    @ApiModelProperty(value = "是否显示,0:隐藏,1:显示")
    private Boolean isVisible;

    @ApiModelProperty(value = "是否禁用,0:正常,1:禁用")
    private Boolean isDisabled;

    @ApiModelProperty(value = "创建时间")
    private LocalDateTime createTime;

    @ApiModelProperty(value = "更新时间")
    private LocalDateTime updateTime;

    @TableLogic
    @ApiModelProperty(value = "是否删除,0:正常,1:删除")
    private Boolean isDeleted;
}
